home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / toolmanager / readtmfile.e < prev    next >
Text File  |  1994-05-02  |  10KB  |  296 lines

  1. /********************************************************************************
  2.  * << AUTO HEADER XDME >>
  3.  ********************************************************************************
  4.  ED             "EDG"
  5.  EC             "EC"
  6.  PREPRO         "EPP"
  7.  SOURCE         "ReadTMFile.e"
  8.  EPPDEST        "RTM_EPP.e"
  9.  EXEC           "ReadTM"
  10.  ISOURCE        " "
  11.  HSOURCE        " "
  12.  ERROREC        " "
  13.  ERROREPP       " "
  14.  VERSION        "0"
  15.  REVISION       "0"
  16.  NAMEPRG        "ReadTM"
  17.  NAMEAUTHOR     "NasGûl"
  18.  ********************************************************************************
  19.  * HISTORY :
  20.  *******************************************************************************/
  21.  
  22. OPT OSVERSION=37
  23.  
  24. CONST DEBUG=TRUE
  25.  
  26. CONST BUFSIZE=65536,
  27.       ID_PREF=$50524546,
  28.       ID_TMEX=$544D4558,
  29.       ID_TMIM=$544D494D,
  30.       ID_TMSO=$544D534F,
  31.       ID_TMMO=$544D4D4F,
  32.       ID_TMIC=$544D4943,
  33.       ID_TMDO=$544D444F,
  34.       ID_TMAC=$544D4143
  35.  
  36.  
  37.  
  38. ENUM ER_NONE,ER_BADARGS,ER_NOTMFILE
  39.  
  40. MODULE 'tm'
  41. PROC tm_ReadTMFile(source) /*"tm_ReadBINFile(source)"*/
  42.     DEF len,a,adr,buf,handle,flen=TRUE,pos
  43.     DEF chunk,long
  44.     /*****************************************/
  45.     /* Stockage du fichier source dans buf   */
  46.     /*****************************************/
  47.     IF (flen:=FileLength(source))=-1 THEN RETURN FALSE
  48.     IF (buf:=New(flen+1))=NIL THEN RETURN FALSE
  49.     IF (handle:=Open(source,1005))=NIL THEN RETURN FALSE
  50.     len:=Read(handle,buf,flen)
  51.     Close(handle)
  52.     IF len<1 THEN RETURN FALSE
  53.     adr:=buf
  54.     chunk:=Long(adr)
  55.     /*
  56.     IF chunk<>ID_FORM
  57.         WriteF('ce n\aest pas un fichier IFF.\n')
  58.         Dispose(buf)
  59.         RETURN FALSE
  60.     ENDIF
  61.     */
  62.     /***********/
  63.     /* Lecture */
  64.     /***********/
  65.     FOR a:=0 TO len-1
  66.         pos:=adr++
  67.         chunk:=Long(pos)
  68.         SELECT chunk
  69.             CASE ID_PREF
  70.                 WriteF('ID_PREF.\n')
  71.             CASE ID_TMEX
  72.                 long:=Long(pos+4)
  73.                 WriteF('ID_TMEX. Longueur :\d\n',long)
  74.                 tm_ReadTMExec(pos+8)
  75.             CASE ID_TMIM
  76.                 WriteF('ID_TMIM. Longueur :\d\n',long)
  77.                 tm_ReadTMImage(pos+8)
  78.             CASE ID_TMSO
  79.                 WriteF('ID_TMSO.\n')
  80.                 tm_ReadTMSound(pos+8)
  81.             CASE ID_TMMO
  82.                 WriteF('ID_TMMO.\n')
  83.                 tm_ReadTMMenu(pos+8)
  84.             CASE ID_TMIC
  85.                 WriteF('ID_TMIC.\n')
  86.                 tm_ReadTMIcon(pos+8)
  87.             CASE ID_TMDO
  88.                 WriteF('ID_TMDO.\n')
  89.                 tm_ReadTMDock(pos+8)
  90.             CASE ID_TMAC
  91.                 WriteF('ID_TMAC.\n')
  92.         ENDSELECT
  93.     ENDFOR
  94.     Dispose(buf)
  95. ENDPROC
  96. PROC tm_ReadTMExec(my_execp:PTR TO execprefsobject) /*"ReadTMExec(my_execp:PTR TO execprefsobject)"*/
  97.     DEF buffer
  98.     DEF pv[256]:STRING
  99.     WriteF('StringBits:\d Flags:\d Delay:\d Stack:\d ExecType:\d Pri:\d\n',my_execp.stringbits,my_execp.flags,my_execp.delay,my_execp.stack,my_execp.exectype,my_execp.priority)
  100.     buffer:=my_execp+20
  101.     IF (my_execp.stringbits AND EXPO_NAME)
  102.         StringF(pv,'\s',buffer)
  103.         WriteF('EXPO_NAME :\s ',pv)
  104.         buffer:=buffer+EstrLen(pv)+1
  105.     ENDIF
  106.     IF (my_execp.stringbits AND EXPO_COMMAND)
  107.         StringF(pv,'\s',buffer)
  108.         WriteF('EXPO_COMMAND :\s ',pv)
  109.         buffer:=buffer+EstrLen(pv)+1
  110.     ENDIF
  111.     IF (my_execp.stringbits AND EXPO_CURDIR)
  112.         StringF(pv,'\s',buffer)
  113.         WriteF('EXPO_CURDIR :\s ',pv)
  114.         buffer:=buffer+EstrLen(pv)+1
  115.     ENDIF
  116.     IF (my_execp.stringbits AND EXPO_HOTKEY)
  117.         StringF(pv,'\s',buffer)
  118.         WriteF('EXPO_HOTKEY :\s ',pv)
  119.         buffer:=buffer+EstrLen(pv)+1
  120.     ENDIF
  121.     IF (my_execp.stringbits AND EXPO_OUTPUT)
  122.         StringF(pv,'\s',buffer)
  123.         WriteF('EXPO_OUTPUT :\s ',pv)
  124.         buffer:=buffer+EstrLen(pv)+1
  125.     ENDIF
  126.     IF (my_execp.stringbits AND EXPO_PATH)
  127.         StringF(pv,'\s',buffer)
  128.         WriteF('EXPO_PATH :\s ',pv)
  129.         buffer:=buffer+EstrLen(pv)+1
  130.     ENDIF
  131.     IF (my_execp.stringbits AND EXPO_PSCREEN)
  132.         StringF(pv,'\s',buffer)
  133.         WriteF('EXPO_PSCREEN :\s ',pv)
  134.         buffer:=buffer+EstrLen(pv)+1
  135.     ENDIF
  136.     IF (my_execp.flags AND EXPOF_ARGS) THEN NOP
  137.     IF (my_execp.flags AND EXPOF_TOFRONT) THEN NOP
  138.     WriteF('\n')
  139. ENDPROC
  140. PROC tm_ReadTMImage(my_imagep:PTR TO imageprefsobject) /*"ReadTMImage(my_imagep:PTR TO imageprefsobject)"*/
  141.     DEF buffer
  142.     DEF pv[256]:STRING
  143.     WriteF('StringBits:\d ',my_imagep.stringbits)
  144.     buffer:=my_imagep+4
  145.     IF (my_imagep.stringbits AND IMPO_NAME)
  146.         StringF(pv,'\s',buffer)
  147.         WriteF('IMPO_NAME :\s ',pv)
  148.         buffer:=buffer+EstrLen(pv)+1
  149.     ENDIF
  150.     IF (my_imagep.stringbits AND IMPO_FILE)
  151.         StringF(pv,'\s',buffer)
  152.         WriteF('IMPO_FILE :\s ',pv)
  153.         buffer:=buffer+EstrLen(pv)+1
  154.     ENDIF
  155.     WriteF('\n')
  156. ENDPROC
  157. PROC tm_ReadTMSound(my_soundp:PTR TO soundprefsobject) /*"ReadTMSound(my_soundp:PTR TO soundprefsobject)"*/
  158.     DEF buffer
  159.     DEF pv[256]:STRING
  160.     WriteF('StringBits:\d ',my_soundp.stringbits)
  161.     buffer:=my_soundp+4
  162.     IF (my_soundp.stringbits AND SOPO_NAME)
  163.         StringF(pv,'\s',buffer)
  164.         WriteF('SOPO_NAME :\s ',pv)
  165.         buffer:=buffer+EstrLen(pv)+1
  166.     ENDIF
  167.     IF (my_soundp.stringbits AND SOPO_COMMAND)
  168.         StringF(pv,'\s',buffer)
  169.         WriteF('SOPO_COMMAND :\s ',pv)
  170.         buffer:=buffer+EstrLen(pv)+1
  171.     ENDIF
  172.     IF (my_soundp.stringbits AND SOPO_PORT)
  173.         StringF(pv,'\s',buffer)
  174.         WriteF('SOPO_COMMAND :\s ',pv)
  175.         buffer:=buffer+EstrLen(pv)+1
  176.     ENDIF
  177.     WriteF('\n')
  178. ENDPROC
  179. PROC tm_ReadTMMenu(my_menup:PTR TO menuprefsobject) /*"ReadTMMenu(my_menup:PTR TO menuprefsobject)"*/
  180.     DEF buffer
  181.     DEF pv[256]:STRING
  182.     WriteF('StringBits:\d ',my_menup.stringbits)
  183.     buffer:=my_menup+4
  184.     IF (my_menup.stringbits AND MOPO_NAME)
  185.         StringF(pv,'\s',buffer)
  186.         WriteF('MOPO_NAME :\s ',pv)
  187.         buffer:=buffer+EstrLen(pv)+1
  188.     ENDIF
  189.     IF (my_menup.stringbits AND MOPO_EXEC)
  190.         StringF(pv,'\s',buffer)
  191.         WriteF('MOPO_EXEC :\s ',pv)
  192.         buffer:=buffer+EstrLen(pv)+1
  193.     ENDIF
  194.     IF (my_menup.stringbits AND MOPO_SOUND)
  195.         StringF(pv,'\s',buffer)
  196.         WriteF('SOPO_COMMAND :\s ',pv)
  197.         buffer:=buffer+EstrLen(pv)+1
  198.     ENDIF
  199.     WriteF('\n')
  200. ENDPROC
  201. PROC tm_ReadTMIcon(my_iconp:PTR TO iconprefsobject) /*"ReadTMIcon(my_iconp:PTR TO iconprefsobject)"*/
  202.     DEF buffer
  203.     DEF pv[256]:STRING
  204.     WriteF('StringBits:\d Flags :\d ',my_iconp.stringbits,my_iconp.flags)
  205.     buffer:=my_iconp+16
  206.     IF (my_iconp.stringbits AND ICPO_NAME)
  207.         StringF(pv,'\s',buffer)
  208.         WriteF('ICPO_NAME :\s ',pv)
  209.         buffer:=buffer+EstrLen(pv)+1
  210.     ENDIF
  211.     IF (my_iconp.stringbits AND ICPO_EXEC)
  212.         StringF(pv,'\s',buffer)
  213.         WriteF('ICPO_EXEC :\s ',pv)
  214.         buffer:=buffer+EstrLen(pv)+1
  215.     ENDIF
  216.     IF (my_iconp.stringbits AND ICPO_IMAGE)
  217.         StringF(pv,'\s',buffer)
  218.         WriteF('ICPO_IMAGE :\s ',pv)
  219.         buffer:=buffer+EstrLen(pv)+1
  220.     ENDIF
  221.     IF (my_iconp.stringbits AND ICPO_SOUND)
  222.         StringF(pv,'\s',buffer)
  223.         WriteF('ICPO_SOUND :\s ',pv)
  224.         buffer:=buffer+EstrLen(pv)+1
  225.     ENDIF
  226.     IF (my_iconp.flags AND ICPOF_SHOWNAME) THEN NOP
  227.     WriteF('\n')
  228. ENDPROC
  229. PROC tm_ReadTMDock(my_dockp:PTR TO dockprefsobject) /*"ReadTMDock(my_dockp:PTR TO dockprefsobject)"*/
  230.     DEF buffer
  231.     DEF pv[256]:STRING
  232.     DEF tf
  233.     DEF quit=FALSE
  234.     WriteF('StringBits:\d Flags:\d Xpos:\d Ypos:\d Col:\d ',my_dockp.stringbits,my_dockp.flags,my_dockp.xpos,my_dockp.ypos,my_dockp.columns)
  235.     buffer:=my_dockp+SIZEOF dockprefsobject
  236.     IF (my_dockp.stringbits AND DOPO_NAME)
  237.         StringF(pv,'\s',buffer)
  238.         WriteF('DOPO_NAME :\s ',pv)
  239.         buffer:=buffer+EstrLen(pv)+1
  240.     ENDIF
  241.     IF (my_dockp.stringbits AND DOPO_HOTKEY)
  242.         StringF(pv,'\s',buffer)
  243.         WriteF('DOPO_HOTKEY :\s ',pv)
  244.         buffer:=buffer+EstrLen(pv)+1
  245.     ENDIF
  246.     IF (my_dockp.stringbits AND DOPO_PSCREEN)
  247.         StringF(pv,'\s',buffer)
  248.         WriteF('DOPO_PSCREEN :\s ',pv)
  249.         buffer:=buffer+EstrLen(pv)+1
  250.     ENDIF
  251.     IF (my_dockp.stringbits AND DOPO_TITLE)
  252.         StringF(pv,'\s',buffer)
  253.         WriteF('DOPO_TITLE :\s ',pv)
  254.         buffer:=buffer+EstrLen(pv)+1
  255.     ENDIF
  256.     IF (my_dockp.stringbits AND DOPO_FONTNAME)
  257.         StringF(pv,'\s',buffer)
  258.         WriteF('DOPO_FONTNAME :\s ',pv)
  259.         buffer:=buffer+EstrLen(pv)+1
  260.     ENDIF
  261.     REPEAT
  262.         tf:=Char(buffer)
  263.         IF (tf AND DOPOT_EXEC)
  264.             StringF(pv,'\s',buffer)
  265.             WriteF('DOPOT_EXEC :\s ',pv)
  266.             buffer:=buffer+EstrLen(pv)+1
  267.         ENDIF
  268.         IF (tf AND DOPOT_IMAGE)
  269.             StringF(pv,'\s',buffer)
  270.             WriteF('DOPOT_IMAGE :\s ',pv)
  271.             buffer:=buffer+EstrLen(pv)+1
  272.         ENDIF
  273.         IF (tf AND DOPOT_SOUND)
  274.             StringF(pv,'\s',buffer)
  275.             WriteF('DOPOT_SOUND :\s ',pv)
  276.             buffer:=buffer+EstrLen(pv)+1
  277.         ENDIF
  278.     UNTIL tf=0
  279.     IF (my_dockp.flags AND DOPOF_ACTIVATED) THEN WriteF('DOPOF_ACTIVATED ')
  280.     IF (my_dockp.flags AND DOPOF_CENTERED) THEN WriteF('DOPOF_CENTERED ')
  281.     IF (my_dockp.flags AND DOPOF_FRONTMOST) THEN WriteF('DOPOF_FRONTMOST ')
  282.     IF (my_dockp.flags AND DOPOF_MENU) THEN WriteF('DOPOF_MENU ')
  283.     IF (my_dockp.flags AND DOPOF_PATTERN) THEN WriteF('DOPOF_PATTERN ')
  284.     IF (my_dockp.flags AND DOPOF_POPUP) THEN WriteF('DOPOF_POPUP ')
  285.     IF (my_dockp.flags AND DOPOF_TEXT) THEN WriteF('DOPOF_TEXT ')
  286.     IF (my_dockp.flags AND DOPOF_VERTICAL) THEN WriteF('DOPOF_VERTICAL ')
  287.     IF (my_dockp.flags AND DOPOF_BACKDROP) THEN WriteF('DOPOF_BACKDROP ')
  288.     IF (my_dockp.flags AND DOPOF_STICKY) THEN WriteF('DOPOF_STICKY ')
  289.     WriteF('\n')
  290. ENDPROC
  291. PROC main() HANDLE /*"main()"*/
  292.     tm_ReadTMFile(arg)
  293.     Raise(ER_NONE)
  294. EXCEPT
  295. ENDPROC
  296.